Method and device for real-time multi-view production

ABSTRACT

Methods and devices are disclosed, wherein from a stereo image having at least 2 perspectives additional (in general 8 or more) virtual perspectives can be produced, on condition that the time for the entire production process is less than the specified frame rate, and that simultaneously the multi-view image quality is maximized. It is not required that a disparity map exists. In general, the image regions that have not change between two stereo images of the image sequence are identified. In these regions, the associated disparity map also cannot have changed. In addition, the processing parameters are continuously adjusted through continuous time measurement during processing such that the quality is always at the maximum thereof. In this way, an adaptive method is obtained, which can also respond to load fluctuations of the underlying hardware device.

PROBLEM STATEMENT

Autostereoscopic displays that can show several perspectives in parallel and allow several viewers from different viewing positions to perceive a spacial image without optical aids have become increasingly popular in recent years.

The number of perspectives presented in parallel varies in general between 4 and 32. But this number may be even higher in future.

The set of perspectives presented in parallel and that have been captured at the same moment t, is referred to in the following as Multi-View image.

Different requirements and constraints arise from the production process, ranging from capturing with a stereo camera to encoded transmission and presentation on an auto-stereoscopic display:

-   -   For capturing the camera has to be easy to carry and handle. It         should thus be light weighted and equipped with only few lenses         (for example only 2).     -   For transmission, as few perspectives as possible should be         broadcasted in order to have maximum resolution for each         perspective.     -   For visualization, as many perspectives as possible should be         presented in order to create as many optimal viewing positions         as possible.

These requirements imply the conclusion that it would be best to generate as many perspectives as possible at the place of presentation. Additionally, it has to be taken into account that the capacity of different apertures leads to an execution time that is shorter than the time between two stereo images. This is the objective of the filed patent.

STATE OF THE ART

The MPEG organization in 1996 already approved a so-called “Multiview-Profile” for the transmission of stereo images allowing consistent encoding and transmission of more than one camera position consistently. In practice, this is mostly used for 2 camera positions for the above-mentioned reasons.

Apart from MPEG's Multiview profile, which will become of greater importance in the future, there are other relevant, generally analog, formats arising from historical reasons in the past. Here such formats as field sequential, interlaced, over/under and side-by-side from the field of video recorders can be mentioned. In these cases there are no disparity maps available as a source of information.

In CA 2 212 069 (Ref. 4) a method is presented where an optimal disparity is found by using a least squares optimization of reference blocks in the search area. This method is used for encoding a sequence of stereo images. But it is only applied to the luminance values of the image. Additionally, parameters of an affine transformation shall compensate the potential differences of the calibration of the camera lenses. As the presented method has especially been developed for the encoding and decoding of stereo images sequences, there is a close relationship with MPEG encoding methods.

In CA 2 553 473 (Ref. 5) a depth map is generated by analyzing the edges of a monoscopic image sequence, which together with the original image synthesizes a stereo image. But, as there is no information about the occlusions and the associated image content, this method is not acceptable here for an optically correct Multi-View generation.

In US 2007/0104276 A1 (Ref. 6) a method is presented based on an MPEG Multiview profile standard. The procedure here is such that for a reference image (for example the left image) disparity vectors to all other sub-images of the Multi-View image are computed. Based on the reference image and the disparity vectors the sub-images is reconstructed and the difference/correlation between the original sub-image and the reconstructed sub-image is defined using an arbitrary norm. The reconstruction error will be used for the definition of an estimation structure.

In WO 2007/035054 A1 (Ref. 7) an encoding method is presented for efficiently encoding and decoding a Multi-View image from several cameras. Here the disparity is not computed for all blocks. The disparity of the blocks not computed is generated by interpolation on the basis of an associated reference list. This way it is not necessary to compute the disparity for all blocks. Linear or cubic two-dimensional interpolation methods are applied to estimate the disparity for the blocks not computed.

In US 2005/0185048 A1 (Ref. 8) an in-between perspective is generated by defining a block in the in-between perspective and by shifting this block in the left and right image in parallel by some disparity until the absolute value of the sum of the pixel values is minimal. The image point of the in-between perspective is defined as the mean value (generalized “blending”) of the found minimal pixel value of the left and right images.

In the methods and apertures presented here, from a stereo image with at least 2 perspectives (in general 8 and more) virtual perspectives are generated under the preconditions that the time for the total generation process is less than the given frame rate, and that in parallel the Multi-View image quality is maximized.

It is not assumed that a disparity map already exists. But one can be used, if available, to help increase the processing speed.

In the typical case, the images areas are identified that have not changed between two stereo images of an image sequence. In these areas the corresponding disparity map cannot be changed, if the geometric parameters of the lenses of the stereo camera have not changed in the meantime.

At the same time, constant, ongoing measurement of time during execution allows adjustment of the processing parameters, ensuring that optimum quality at all times.

This yields an adaptive method able to react to strain variations of the underlying hardware aperture.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of the different processing steps and their correspondence.

FIG. 2 shows the basic principle of Multi-View encoding defined under the MPEG standard.

FIG. 3 shows in one line of the disparity map how the assignable image pixels of the left stereo image can be assigned to the right image pixels. Right occlusions are indicated by a −1 in the corresponding field element of the left sub-image. Left occlusions result in gaps in the assignment to the right image pixels.

FIG. 4 shows an example of how a hardware structure consisting of several processing units could look like.

FIG. 5 shows a flow chart of real-time multi-view generation.

DESCRIPTION OF THE METHOD IN DETAIL

Every real-time multi-view generation starts with receiving a stereo image in a certain stereo format. The stereo image consists of two sub-images of the same scene that have been captured at the same time from different perspectives. It can be of any arbitrary size. Today's image sizes can go up to twice HDTV (1920×1080) resolution.

The received stereo image is split in left sub-image L and a right sub-image R, and scaled to a certain size G(t). The size G(t) is the processing size. Depending on the processing power and workload of the hardware structure used, G(t) can vary over time. At the end of every real-time multi-view generation the processing time is measured and G(t) either enlarged or reduced.

A start value of G(t) will be set during start of the method. After about 2 to 3 real-time multi-view generations, G(t) has automatically/adaptively adjusted itself to a certain optimal value. This scaling is done by the so-called compressor (1).

After compression to the correct processing size, the areas that have not changed between the current image L(1) and R(1) and the previous image L(0) and R(0) respectively are searched. To do so, the image is divided into blocks of identical size (for example 16×16) and every block is compared with the same block of the previous image. If the difference is below a threshold E, all pixels of the block will be marked as unchanged. The similarity can be based on grey values, RGB values or other values. For computation of the similarity both distance measures and correlations measures can be used. This recognition of unchanged areas can be done in the left image as well as in the right image. For simplification and illustration purposes regarding this description, in the following an example is discussed in which constant detection is executed in the left image.

The identification of the constant blocks is executed by the so-called constant detector (2). In the left sub-image for example, pixels can be marked for which there does exist a disparity, meaning they are present in the right image as well, or such pixels that are not present in the right sub-image because of a right occlusion. If constant detection is executed in the right sub-image, this results in pixels with disparity or left occlusions.

The result of the constant detector is passed to the feature extractor (3). For pixels not marked as constant, the necessary features are now computed. For pixels marked as constant, the features have been computed during the last real-time multi-view generation.

This feature extraction is executed for both images L(1) and R(1). Large constant areas reduce execution time significantly.

The result of feature extraction is stored in the memories F_(L) and F_(R) for the left and right sub-images. As the feature memories F_(L) and F_(R) have the same size as G(t), the computed new features of the pixels will simply be stored in the memory position. Constant pixels automatically keep their feature vectors as long as the size G(t) has not been changed during the previous step.

The RGB values, edge values or homogenuity values for example can be used as features. All known feature extraction methods, which assign features to the pixels of an image, can be used.

The memories F_(L) and F_(R) are available for the image analyzer (4). The task of the image analyzer is to compute the disparity map. For this computation dynamic programming methods for example can be applied to the single lines of the left and right sub-image to find the optimal assignment.

But applying this method to the single lines only makes sense if the stereo image is in a normalized stereo form. If this is not the case, it can be achieved by a linear back and forth transformation, or by applying a modified disparity estimation method, using the epipolars for example. For simplification purposes the normalized stereo form will be discussed in the following.

As this step is one of the most time consuming, special attention must be paid to the reduction of execution time. The result of the constant detector is thus also available in this step. For each pixel the image analyzer has the information

${K\left( {i,j} \right)}:=\left\{ \begin{matrix} {1,} & {{{if}\mspace{14mu} {pixel}\mspace{14mu} \left( {i,j} \right)\mspace{14mu} {has}\mspace{14mu} {changed}},} \\ {10,} & {{otherwise}.} \end{matrix} \right.$

For all pixels (i, j) for which K(i, j)=0, the disparity DP (0, i, j) can be transferred to DP (1, i, j). DP (1, i, j) is the matrix of the disparities of the current moment.

In general, for the similarity evaluation a neighborhood of the pixel (i, j) with the feature vector F_(L)(i, j) is used. The neighborhood can either be a rectangle or restricted by geometric properties like edges. As a similarity measure any norm such as the euclidean, absolute value or correlation can be used. Additionally, features in the norm can be weighted, the weightings being imported upon start up.

The constant disparities of a line can result in an optimization problem with restrictions in a way that the disparity will only be computed for those pixels (i, j) for which K (i, j)=1, or resulting for example in a segmented dynamic programming problem where optimization is only done within a segment for which all K(i, j)=1 is true.

The value DP (1, i, j_(u)) with the smallest j of a segment such that K (i, j_(u))=0 is used as the left starting point. The value DP (1, i, j_(o)) with the largest j of the segment such that K (i, j_(o))=0 is taken as the right ending point of the segment.

Therefore, a dynamic programming problem will only be solved in the segment from j_(u) to j_(o). Of course it can result in several segments within the same line. The matrix DP (1, i, j) is afterwards defined as:

${{signed}\mspace{14mu} {{DP}\left( {1,i,j} \right)}}:=\left\{ \begin{matrix} {j^{*},} & \begin{matrix} {{{if}\mspace{14mu} {pixel}\mspace{14mu} \left( {i,j} \right)\mspace{14mu} {from}\mspace{14mu} {the}\mspace{14mu} {left}}\mspace{14mu}} \\ {{sub}\text{-}{image}\mspace{14mu} {will}\mspace{14mu} {be}\mspace{14mu} {as}\text{-}{to}} \\ {{{the}\mspace{20mu} {pixel}\mspace{14mu} \left( {i,j^{*}} \right)},} \end{matrix} \\ {{- 1},} & {{if}\mspace{14mu} {pixel}\mspace{14mu} \left( {i,j} \right)\mspace{14mu} {is}\mspace{14mu} a\mspace{14mu} {right}\mspace{14mu} {{occlusion}.}} \end{matrix} \right.$

Left occlusions can be identified in DP(1) if there is a gap between DP(1, i, j) and DP(1, i, j+1). A single line of DP(1) is shown in FIG. 3.

The image analysis generates the matrix DP(1).

The image synthesizer (5) uses the disparity maps DP(1) as well as the sub-images L(1) and R(1) and copies them to I(1) and I(n). Only the virtual perspectives (2) to I(n−1) will be generated.

The image synthesizer practically implements a virtual camera panning motion from L(1) to R(1) with n−2 stop-overs if the multi-view image has to contain n perspectives. n>2 can be modified at any time by the viewer.

For all (i,j) of the left sub-image the following will be carried out:

If DP (1, i, j)=j* is true, Δj*:=(j*−j)/(n−1) will be computed.

The virtual camera panning motion implies for a pixel L (1, i, j) that

I(k,i,j+Δj*(k−1)):=L(1,i,j), k=1, . . . n

will be set.

The area of a right occlusion for which DP(1, i, j)=−1 holds is slowly phased out until it no longer exists in I(n) anymore.

Conversely, a left occlusion defined by |DP(1, i, j)−DP(1, i, j+1)|>1, is slowly phased in.

If there is an assignment j* for a pixel L(1, i, j), this does not ensure that L(1, i, j)=R(1, i, j*) holds. This could be caused by different noise in the images or by the camera calibration. In this case, an additional blending can be applied from

L(1, i, j) to R(1, i, j*), such that I(n, i, j*)=R(1, i, j*) can be enforced.

If rounding errors during the computation of j+Δj*(k−1) result in some pixels not being generated in a multi-view perspective, these missing pixels are inserted by geometric interpolation from the set neighboring pixels.

After finishing the image synthesis, the multi-view image with n perspectives is available for presentation on the display.

The control unit (6) measures the time Δt elapsed since receiving the stereo image. For every video format the image frequency (PAL=50 Hz, NTSC=60 Hz, HDTV=100 Hz) is known.

If the total computation time Δt is longer than the time between two stereo images, the control unit modifies the processing parameters. To do so, the control unit has two options:

-   -   1. Some of the features of the feature vectors F_(L) and F_(R)         are no longer evaluated, for example the homogeneity measure.     -   2. The processing size G(t) will be reduced. Through this the         resolution will be reduced.

If on the other hand the processing time Δt is significantly shorter than the time between receiving two stereo images, the control unit can enlarge the resolution or add additional features to improve the quality. After changing the control parameters modifications are suspended for the next 3-4 time measurements to let the new control parameters have an effect on the processing steps.

Thus the overall system always dynamically and adaptively adjusts itself to the hardware workload.

All steps are designed so that they can be executed by multiple processing units in parallel (multi-core). This is shown in FIG. 4.

All processing steps are outlined in FIG. 5 in the form of a flow chart.

In a further embodiment the constant detector, which finds the constant blocks, will be combined with the MPEG encoding algorithm.

Various MPEG encoding algorithms are also using blocks (in general of size 16×16) to identify unchanged areas. These blocks are not transmitted. An integrated method could therefore use this information or the additional information from the enhancement layer and process for the subsequent steps.

REFERENCES

-   1. US 2006/01616138 A1 and additional filings, “Method and System     for Synthesizing Multiview Videos”, Nov. 30, 2005, Jun Xin Quincy -   2. EP 1 175 104 B1 and additional filings, “Stereoscopic Image     Disparity Measuring System”, Jun. 15, 2001, Jeong, Hong et al. -   3. U.S. Pat. No. 6,847,728 B2, “Dynamic Depth Recovery from Multiple     Synchronized Video Streams”, Dec. 9, 2002, Hai Tao et al -   4. CA 2 212 069, “Optimal Disparity Estimation for Stereoscopic     Video Coding”, Aug. 6, 1996, Chen, Xuemin et al -   5. US 2007/0024614 A1, “Generating A Depth Map from a     Two-dimensional Source Image for Stereoscopic and Multiview     Imaging”, Jul. 25, 2006, Wa James Tam et al. -   6. US 2007/0104276 A1, “Method and Apparatus for Encoding Multiview     Video”, Nov. 6, 2006, Ha, Tae-Hyeun -   7. WO 2007/035054 A1, “Method of Estimating Disparity Vector, and     Method for Encoding and Decoding Multi-View Moving Picture using the     Disparity Vector Estimation Method”, Sep. 22, 2005, Ha, Tae-Hyeun -   8. US 2005/0185048 A1, “3-D Display System, Apparatus, and Method     for Reconstructing Intermediate-View Video”, Jan. 27, 2005, Ha,     Tae-Hyeun 

1. Method for the generation of m>0 synthetic images from a stereo image of a stereo image sequence with two or more sub-images in such manner that a control unit measures the processing time and compares it with given target values and modifies control parameter in such manner as to render with maximum resolution and minimal image error, where the generation of the synthetic images being finished before the next stereo image in the sequence is received.
 2. Method according to claim 1, wherein the resolution of the synthetic images can be modified by the user depending on the measured processing time for the synthetic images.
 3. Method according to claim 1, wherein the resolution of the synthetic images can be modified by an automatic estimation method depending on the measured processing time for the synthetic images.
 4. Method according to claim 1, wherein the number of used features for the disparity estimation can be modified by the user depending on the measured processing time for the synthetic images.
 5. Method according to claim 1, wherein the number of used features for the disparity estimation can be modified by an automatic estimation method depending on the measured processing time for the synthetic images.
 6. Method according to claim 1, wherein areas in a sub-image of a stereo image will be identified that deviate from the sub-image of the previous stereo image by less than a given value ε, and wherein the computed disparity values of the corresponding pixels of the previous sub-image are re-used.
 7. A device for the execution of a method according to claim 1 with a compressor for adjusting the received image size to the processing size, a constant detector for the identification of constant image areas, a feature extractor for the computation of features of the pixels, an image analyzer for the correspondence analysis, an image synthesizer for the generation of additional perspectives and a control unit that sets the control parameters, such that the computation of the additional perspectives is finished before a new stereo image is received. 